home *** CD-ROM | disk | FTP | other *** search
/ Garbo / Garbo.cdr / mac / progrmng / mlpmodul.sit / MacLogimoPlus Documentation / DEF3 Files / QuickDraw.MOD < prev    next >
Encoding:
Modula Implementation  |  1990-06-14  |  13.0 KB  |  422 lines  |  [TEXT/PMED]

  1. IMPLEMENTATION MODULE QuickDraw;   (* Franz Kronseder 08.06.85    *)
  2.                                    (* last modified  12.06.85 fxk *)
  3.  
  4. FROM SYSTEM IMPORT WORD;
  5. FROM MacBase IMPORT  PTRAP,trapnr,Point,StrPtr;
  6. IMPORT MacBase;
  7.  
  8. (* GrafPort Routines *)
  9. (*$P-,$S-,$T-*)
  10. PROCEDURE InitGraf   (globalPtr: QDPtr);                (*INLINE $A86E*)
  11. BEGIN trapnr:= 0A86EH; PTRAP; END InitGraf;
  12.  
  13. (*$P-,$S-,$T-*)
  14. PROCEDURE OpenPort   (port: GrafPtr);                   (*INLINE $A86F*)
  15. BEGIN trapnr:= 0A86FH; PTRAP; END OpenPort;
  16.  
  17. (*$P-,$S-,$T-*)
  18. PROCEDURE InitPort   (port: GrafPtr);                   (*INLINE $A86D*)
  19. BEGIN trapnr:= 0A860H; PTRAP; END InitPort;
  20.  
  21. (*$P-,$S-,$T-*)
  22. PROCEDURE ClosePort  (port: GrafPtr);                   (*INLINE $A87D*)
  23. BEGIN trapnr:= 0A87DH; PTRAP; END ClosePort;
  24.  
  25. (*$P-,$S-,$T-*)
  26. PROCEDURE SetPort    (port: GrafPtr);                   (*INLINE $A873*)
  27. BEGIN trapnr:= 0A873H; PTRAP; END SetPort;
  28.  
  29. (*$P-,$S-,$T-*)
  30. PROCEDURE GetPort    (VAR port: GrafPtr);               (*INLINE $A874*)
  31. BEGIN trapnr:= 0A874H; PTRAP; END GetPort;
  32.  
  33. (*$P-,$S-,$T-*)
  34. PROCEDURE GrafDevice (device: INTEGER);                 (*INLINE $A872*)
  35. BEGIN trapnr:= 0A872H; PTRAP; END GrafDevice;
  36.  
  37. (*$P-,$S-,$T-*)
  38. PROCEDURE SetPortBits(VAR bm: BitMap);                  (*INLINE $A875*)
  39. BEGIN trapnr:= 0A875H; PTRAP; END SetPortBits;
  40.  
  41. (*$P-,$S-,$T-*)
  42. PROCEDURE PortSize   (width,height: INTEGER);           (*INLINE $A876*)
  43. BEGIN trapnr:= 0A876H; PTRAP; END PortSize;
  44.  
  45. (*$P-,$S-,$T-*)
  46. PROCEDURE MovePortTo (leftGlobal,topGlobal: INTEGER);   (*INLINE $A877*)
  47. BEGIN trapnr:= 0A877H; PTRAP; END MovePortTo;
  48.  
  49. (*$P-,$S-,$T-*)
  50. PROCEDURE SetOrigin  (h,v: INTEGER);                    (*INLINE $A878*)
  51. BEGIN trapnr:= 0A878H; PTRAP; END SetOrigin;
  52.  
  53. (*$P-,$S-,$T-*)
  54. PROCEDURE SetClip    (rgn: RgnHandle);                  (*INLINE $A879*)
  55. BEGIN trapnr:= 0A879H; PTRAP; END SetClip;
  56.  
  57. (*$P-,$S-,$T-*)
  58. PROCEDURE GetClip    (rgn: RgnHandle);                  (*INLINE $A87A*)
  59. BEGIN trapnr:= 0A87AH; PTRAP; END GetClip;
  60.  
  61. (*$P-,$S-,$T-*)
  62. PROCEDURE ClipRect   (VAR r: Rect);                     (*INLINE $A87B*)
  63. BEGIN trapnr:= 0A87BH; PTRAP; END ClipRect;
  64.  
  65. (*$P-,$S-,$T-*)
  66. PROCEDURE BackPat    (VAR pat: Pattern);                (*INLINE $A87C*)
  67. BEGIN trapnr:= 0A87CH; PTRAP; END BackPat;
  68.  
  69.  
  70. (* Cursor Routines *)
  71.  
  72. (*$P-,$S-,$T-*)
  73. PROCEDURE InitCursor;                                   (*INLINE $A850*)
  74. BEGIN trapnr:= 0A850H; PTRAP; END InitCursor;
  75.  
  76. (*$P-,$S-,$T-*)
  77. PROCEDURE SetCursor(VAR crsr: Cursor);                  (*INLINE $A851*)
  78. BEGIN trapnr:= 0A851H; PTRAP; END SetCursor;
  79.  
  80. (*$P-,$S-,$T-*)
  81. PROCEDURE HideCursor;                                   (*INLINE $A852*)
  82. BEGIN trapnr:= 0A852H; PTRAP; END HideCursor;
  83.  
  84. (*$P-,$S-,$T-*)
  85. PROCEDURE ShowCursor;                                   (*INLINE $A853*)
  86. BEGIN trapnr:= 0A853H; PTRAP; END ShowCursor;
  87.  
  88. (*$P-,$S-,$T-*)
  89. PROCEDURE ObscureCursor;                                (*INLINE $A856*)
  90. BEGIN trapnr:= 0A856H; PTRAP; END ObscureCursor;
  91.  
  92. (*$P-,$S-,$T-*)
  93. PROCEDURE GetCursor (cursorID: INTEGER):  CursHandle;   (*INLINE $A9B9*)
  94. BEGIN trapnr:= 0A9B9H; PTRAP; END GetCursor;
  95.  
  96. (*$P-,$S-,$T-*)
  97. PROCEDURE ShieldCursor(left,top,right,bottom: INTEGER); (*INLINE $A855*)
  98. BEGIN trapnr:= 0A855H; PTRAP; END ShieldCursor;
  99.  
  100.  
  101.  
  102. (* Line Routines *)
  103.  
  104. (*$P-,$S-,$T-*)
  105. PROCEDURE HidePen;                                      (*INLINE $A896*)
  106. BEGIN trapnr:= 0A896H; PTRAP; END HidePen;
  107.  
  108. (*$P-,$S-,$T-*)
  109. PROCEDURE ShowPen;                                      (*INLINE $A897*)
  110. BEGIN trapnr:= 0A897H; PTRAP; END ShowPen;
  111.  
  112. (*$P-,$S-,$T-*)
  113. PROCEDURE GetPen     (VAR pt: Point);                   (*INLINE $A89A*)
  114. BEGIN trapnr:= 0A89AH; PTRAP; END GetPen;
  115.  
  116. (*$P-,$S-,$T-*)
  117. PROCEDURE GetPenState(VAR pnState: PenState);           (*INLINE $A898*)
  118. BEGIN trapnr:= 0A898H; PTRAP; END GetPenState;
  119.  
  120. (*$P-,$S-,$T-*)
  121. PROCEDURE SetPenState(VAR pnState: PenState);           (*INLINE $A899*)
  122. BEGIN trapnr:= 0A899H; PTRAP; END SetPenState;
  123.  
  124. (*$P-,$S-,$T-*)
  125. PROCEDURE PenSize    (width,height: INTEGER);           (*INLINE $A89B*)
  126. BEGIN trapnr:= 0A89BH; PTRAP; END PenSize;
  127.  
  128. (*$P-,$S-,$T-*)
  129. PROCEDURE PenMode    (mode: INTEGER);                   (*INLINE $A89C*)
  130. BEGIN trapnr:= 0A89CH; PTRAP; END PenMode;
  131.  
  132. (*$P-,$S-,$T-*)
  133. PROCEDURE PenPat     (VAR pat: Pattern);                (*INLINE $A89D*)
  134. BEGIN trapnr:= 0A89DH; PTRAP; END PenPat;
  135.  
  136. (*$P-,$S-,$T-*)
  137. PROCEDURE PenNormal;                                    (*INLINE $A89E*)
  138. BEGIN trapnr:= 0A89EH; PTRAP; END PenNormal;
  139.  
  140. (*$P-,$S-,$T-*)
  141. PROCEDURE MoveTo     (h,v: INTEGER);                    (*INLINE $A893*)
  142. BEGIN trapnr:= 0A893H; PTRAP; END MoveTo;
  143.  
  144. (*$P-,$S-,$T-*)
  145. PROCEDURE Move       (dh,dv: INTEGER);                  (*INLINE $A894*)
  146. BEGIN trapnr:= 0A894H; PTRAP; END Move;
  147.  
  148. (*$P-,$S-,$T-*)
  149. PROCEDURE LineTo     (h,v: INTEGER);                    (*INLINE $A891*)
  150. BEGIN trapnr:= 0A891H; PTRAP; END LineTo;
  151.  
  152. (*$P-,$S-,$T-*)
  153. PROCEDURE Line       (dh,dv: INTEGER);                  (*INLINE $A892*)
  154. BEGIN trapnr:= 0A892H; PTRAP; END Line;
  155.  
  156. (*$P-,$S-,$T-*)
  157. PROCEDURE TextFont   (font: INTEGER);                   (*INLINE $A887*)
  158. BEGIN trapnr:= 0A887H; PTRAP; END TextFont;
  159.  
  160.  
  161.  
  162. (* Text Routines *)
  163.  
  164. PROCEDURE TextFace     (face: Style);                   (*INLINE $A888*)
  165. BEGIN TextFace1(BITSET(face)); END TextFace;
  166.  
  167. (*$P-,$S-,$T-*)
  168. PROCEDURE TextFace1(face:BITSET);
  169. BEGIN trapnr:= 0A888H; PTRAP; END TextFace1;
  170.  
  171. (*$P-,$S-,$T-*)
  172. PROCEDURE TextMode     (mode: INTEGER);                 (*INLINE $A889*)
  173. BEGIN trapnr:= 0A889H; PTRAP; END TextMode;
  174.  
  175. (*$P-,$S-,$T-*)
  176. PROCEDURE TextSize     (size: INTEGER);                 (*INLINE $A88A*)
  177. BEGIN trapnr:= 0A88AH; PTRAP; END TextSize;
  178.  
  179. (*$P-,$S-,$T-*)
  180. PROCEDURE SpaceExtra   (extra: LongInt);                (*INLINE $A88E*)
  181. BEGIN trapnr:= 0A88EH; PTRAP; END SpaceExtra;
  182.  
  183. PROCEDURE DrawChar     (ch: CHAR);                      (*INLINE $A883*)
  184. BEGIN DrawCharWord(WORD(ch)) END  DrawChar ;
  185.  
  186. (*$P-,$S-,$T-*)
  187. PROCEDURE DrawCharWord (w:WORD);
  188. BEGIN trapnr:= 0A883H; PTRAP END DrawCharWord;
  189.  
  190. (*$P-,$S-,$T-*)
  191. PROCEDURE DrawString  (s:StrPtr);      (*INLINE $A884*)
  192. BEGIN trapnr:= 0A884H; PTRAP; END DrawString;
  193.  
  194.  
  195. (*$P-,$S-,$T-*)
  196. PROCEDURE DrawText     (textBuf: QDPtr; firstByte,byteCount: INTEGER);(*INLINE $A885*)
  197. BEGIN trapnr:= 0A885H; PTRAP; END DrawText;
  198.  
  199. PROCEDURE CharWidth    (ch: CHAR): INTEGER;             (*INLINE $A88D*)
  200. VAR temp: INTEGER;
  201. BEGIN temp:= CharWidth1(WORD(ch)); RETURN temp  END CharWidth;
  202.  
  203. (*$P-,$S-,$T-*)
  204. PROCEDURE CharWidth1 (w:WORD): INTEGER;
  205. BEGIN trapnr:=0A88DH; PTRAP END CharWidth1;
  206.  
  207. (*$P-,$S-,$T-*)
  208. PROCEDURE StringWidth  (s:StrPtr): INTEGER;         (*INLINE $A88C*)
  209. BEGIN trapnr:= 0A88CH; PTRAP; END StringWidth;
  210.  
  211. (*$P-,$S-,$T-*)
  212. PROCEDURE TextWidth    (textBuf: QDPtr; firstByte,byteCount: INTEGER): INTEGER;
  213. BEGIN trapnr:= 0A886H; PTRAP; END TextWidth;            (*INLINE $A886*)
  214.  
  215.  
  216. (*$P-,$S-,$T-*)
  217. PROCEDURE GetFontInfo  (VAR info: FontInfo);            (*INLINE $A88B*)
  218. BEGIN trapnr:= 0A88BH; PTRAP; END GetFontInfo;
  219.  
  220. (*$P-,$S-,$T-*)
  221. PROCEDURE TextBox( inText: Ptr; textLength: LongInt;VAR r: Rect; style: INTEGER );(*INLINE $A9CE*)
  222. BEGIN trapnr:= 0A9CEH; PTRAP; END TextBox ;
  223.  
  224.  
  225. (* Point Calculations *)
  226.  
  227. PROCEDURE AddPt         (src: Point; VAR dst: Point);   (*INLINE $A87E*)
  228. BEGIN AddPt1(src.h,src.v,dst)  END AddPt;
  229.  
  230. (*$P-,$S-,$T-*)
  231. PROCEDURE AddPt1(h,v: INTEGER; VAR dst: Point);
  232. BEGIN trapnr:= 0A87EH; PTRAP; END AddPt1;
  233.  
  234.  
  235. PROCEDURE SubPt         (src: Point; VAR dst: Point);   (*INLINE $A87F*)
  236. BEGIN SubPt1(src.h,src.v,dst)  END SubPt;
  237.  
  238. (*$P-,$S-,$T-*)
  239. PROCEDURE SubPt1(h,v: INTEGER; VAR dst: Point);
  240. BEGIN trapnr:= 0A87FH; PTRAP; END SubPt1;
  241.  
  242.  
  243. (*$P-,$S-,$T-*)
  244. PROCEDURE SetPt         (VAR pt: Point; h,v: INTEGER);  (*INLINE $A880*)
  245. BEGIN trapnr:= 0A880H; PTRAP; END SetPt;
  246.  
  247. PROCEDURE EqualPt       (pt1,pt2: Point): BOOLEAN;      (*INLINE $A881*)
  248. VAR temp: BOOLEAN;
  249. BEGIN temp:= EqualPt1(pt1.h,pt1.v,pt2.h,pt2.v); RETURN temp  END EqualPt;
  250.  
  251. (*$P-,$S-,$T-*)
  252. PROCEDURE EqualPt1(h1,v1,h2,v2: INTEGER):BOOLEAN;
  253. BEGIN trapnr:= 0A881H; PTRAP; END EqualPt1;
  254.  
  255.  
  256. (*$P-,$S-,$T-*)
  257. PROCEDURE ScalePt       (VAR pt: Point;VAR fromRect,toRect: Rect);(*INLINE $A8F8*)
  258. BEGIN trapnr:= 0A8F6H; PTRAP; END ScalePt;
  259.  
  260. (*$P-,$S-,$T-*)
  261. PROCEDURE MapPt         (VAR pt: Point;VAR fromRect,toRect: Rect);(*INLINE $A8F9*)
  262. BEGIN trapnr:= 0A8F9H; PTRAP; END MapPt;
  263.  
  264. (*$P-,$S-,$T-*)
  265. PROCEDURE LocalToGlobal (VAR pt: Point);                (*INLINE $A870*)
  266. BEGIN trapnr:= 0A870H; PTRAP; END LocalToGlobal;
  267.  
  268. (*$P-,$S-,$T-*)
  269. PROCEDURE GlobalToLocal (VAR pt: Point);                (*INLINE $A871*)
  270. BEGIN trapnr:= 0A871H; PTRAP; END GlobalToLocal;
  271.  
  272.  
  273.  
  274. (* Rectangle Calculations *)
  275.  
  276. (*$P-,$S-,$T-*)
  277. PROCEDURE SetRect    (VAR r: Rect; left,top,right,bottom: INTEGER);(*INLINE $A8A7*)
  278. BEGIN trapnr:= 0A8A7H; PTRAP; END SetRect;
  279.  
  280. (*$P-,$S-,$T-*)
  281. PROCEDURE EqualRect  (VAR rect1,rect2: Rect): BOOLEAN;  (*INLINE $A8A6*)
  282. BEGIN trapnr:= 0A8A6H; PTRAP; END EqualRect;
  283.  
  284. (*$P-,$S-,$T-*)
  285. PROCEDURE EmptyRect  (VAR r: Rect): BOOLEAN;            (*INLINE $A8AE*)
  286. BEGIN trapnr:= 0A8AEH; PTRAP; END EmptyRect;
  287.  
  288. (*$P-,$S-,$T-*)
  289. PROCEDURE OffsetRect (VAR r: Rect; dh,dv: INTEGER);     (*INLINE $A8A8*)
  290. BEGIN trapnr:= 0A8A8H; PTRAP; END OffsetRect;
  291.  
  292. (*$P-,$S-,$T-*)
  293. PROCEDURE MapRect    (VAR r,fromRect,toRect: Rect);     (*INLINE $A8FA*)
  294. BEGIN trapnr:= 0A8FAH; PTRAP; END MapRect;
  295.  
  296. (*$P-,$S-,$T-*)
  297. PROCEDURE InsetRect  (VAR r: Rect; dh,dv: INTEGER);     (*INLINE $A8A9*)
  298. BEGIN trapnr:= 0A8A9H; PTRAP; END InsetRect;
  299.  
  300. (*$P-,$S-,$T-*)
  301. PROCEDURE SectRect   (VAR src1,src2,dstRect: Rect): BOOLEAN;(*INLINE $A8AA*)
  302. BEGIN trapnr:= 0A8AAH; PTRAP; END SectRect;
  303.  
  304. (*$P-,$S-,$T-*)
  305. PROCEDURE UnionRect  (VAR src1,src2,dstRect: Rect);     (*INLINE $A8AB*)
  306. BEGIN trapnr:= 0A8ABH; PTRAP; END UnionRect;
  307.  
  308. PROCEDURE PtInRect   (pt: Point;VAR r: Rect): BOOLEAN;  (*INLINE $A8AD*)
  309.  
  310. VAR temp: BOOLEAN;
  311.  
  312. BEGIN temp:= PtInRect1(pt.h,pt.v,r); RETURN temp END PtInRect;
  313.  
  314. (*$P-,$S-,$T-*)
  315. PROCEDURE PtInRect1(h,v: INTEGER;VAR r: Rect): BOOLEAN;
  316. BEGIN trapnr:= 0A8ADH; PTRAP; END PtInRect1;
  317.  
  318.  
  319. PROCEDURE Pt2Rect    (pt1,pt2: Point; VAR dstRect: Rect);(*INLINE $A8AC*)
  320. BEGIN Pt2Rect1(pt1.h,pt1.v,pt2.h,pt2.v,dstRect) END Pt2Rect;
  321.  
  322. (*$P-,$S-,$T-*)
  323. PROCEDURE Pt2Rect1(h1,v1,h2,v2: INTEGER; VAR dstRect: Rect);
  324. BEGIN trapnr:= 0A8ACH; PTRAP; END Pt2Rect1;
  325.  
  326.  
  327. (* Graphical Operations on Rectangles *)
  328.  
  329. (*$P-,$S-,$T-*)
  330. PROCEDURE FrameRect  (VAR r: Rect);                     (*INLINE $A8A1*)
  331. BEGIN trapnr:= 0A8A1H; PTRAP; END FrameRect;
  332.  
  333. (*$P-,$S-,$T-*)
  334. PROCEDURE PaintRect  (VAR r: Rect);                     (*INLINE $A8A2*)
  335. BEGIN trapnr:= 0A8A2H; PTRAP; END PaintRect;
  336.  
  337. (*$P-,$S-,$T-*)
  338. PROCEDURE EraseRect  (VAR r: Rect);                     (*INLINE $A8A3*)
  339. BEGIN trapnr:= 0A8A3H; PTRAP; END EraseRect;
  340.  
  341. (*$P-,$S-,$T-*)
  342. PROCEDURE InvertRect (VAR r: Rect);                     (*INLINE $A8A4*)
  343. BEGIN trapnr:= 0A8A4H; PTRAP; END InvertRect;
  344.  
  345. (*$P-,$S-,$T-*)
  346. PROCEDURE FillRect   (VAR r: Rect;VAR pat: Pattern);    (*INLINE $A8A5*)
  347. BEGIN trapnr:= 0A8A5H; PTRAP; END FillRect;
  348.  
  349.  
  350. (* Graphical Operations on BitMaps *)
  351.  
  352. (*$P-,$S-,$T-*)
  353. PROCEDURE ScrollRect(VAR dstRect: Rect; dh,dv: INTEGER; updateRgn: RgnHandle);
  354. BEGIN trapnr:= 0A8EFH; PTRAP; END ScrollRect;           (*INLINE $A8EF*)
  355.  
  356. (*$P-,$S-,$T-*)
  357. PROCEDURE CopyBits  (VAR srcBits,dstBits: BitMap;
  358.                      VAR srcRect,dstRect: Rect;
  359.                      mode:            INTEGER;
  360.                      maskRgn:         RgnHandle);       (*INLINE $A8EC*)
  361. BEGIN trapnr:= 0A8ECH; PTRAP; END CopyBits;
  362.  
  363. (* Region Handling Routines needed from Module Terminal *)
  364.  
  365. (*$P-,$S-,$T-*)
  366. PROCEDURE NewRgn():   RgnHandle;                        (*INLINE $A8D8*)
  367. BEGIN trapnr:= 0A8D8H; PTRAP; END NewRgn;
  368.  
  369. (*$P-,$S-,$T-*)
  370. PROCEDURE DisposeRgn(rgn: RgnHandle);                   (*INLINE $A8D9*)
  371. BEGIN trapnr:= 0A8D9H; PTRAP; END DisposeRgn;
  372.  
  373. (*$P-,$S-,$T-*)
  374. PROCEDURE CopyRgn   (srcRgn,dstRgn: RgnHandle);         (*INLINE $A8DC*)
  375. BEGIN trapnr:= 0A8DCH; PTRAP; END CopyRgn;
  376.  
  377. (*$P-,$S-,$T-*)
  378. PROCEDURE SetEmptyRgn(rgn: RgnHandle);                  (*INLINE $A8DD*)
  379. BEGIN trapnr:= 0A8DDH; PTRAP; END SetEmptyRgn;
  380.  
  381. (*$P-,$S-,$T-*)
  382. PROCEDURE SetRectRgn(rgn: RgnHandle; left,top,right,bottom: INTEGER);(*INLINE $A8DE*)
  383. BEGIN trapnr:= 0A8DEH; PTRAP; END SetRectRgn;
  384.  
  385. (*$P-,$S-,$T-*)
  386. PROCEDURE FrameRgn  (rgn: RgnHandle);                   (*INLINE $A8D2*)
  387. BEGIN trapnr:= 0A8D2H; PTRAP; END FrameRgn;
  388.  
  389. (*$P-,$S-,$T-*)
  390. PROCEDURE PaintRgn  (rgn: RgnHandle);                   (*INLINE $A8D3*)
  391. BEGIN trapnr:= 0A8D3H; PTRAP; END PaintRgn;
  392.  
  393. (*$P-,$S-,$T-*)
  394. PROCEDURE EraseRgn  (rgn: RgnHandle);                   (*INLINE $A8D4*)
  395. BEGIN trapnr:= 0A8D4H; PTRAP; END EraseRgn;
  396.  
  397. (*$P-,$S-,$T-*)
  398. PROCEDURE InvertRgn (rgn: RgnHandle);                    (*INLINE $A8D5*)
  399. BEGIN trapnr:= 0A8D5H; PTRAP; END InvertRgn;
  400.  
  401. (*$P-,$S-,$T-*)
  402. PROCEDURE FillRgn   (rgn: RgnHandle;VAR pat: Pattern);   (*INLINE $A8D6*)
  403. BEGIN trapnr:= 0A8D6H; PTRAP; END FillRgn;
  404.  
  405.  
  406. (* Miscellanous Routines *)
  407.  
  408. (*$P-,$S-,$T-*)
  409. PROCEDURE GetIcon(iconID:    INTEGER):  Handle;         (*INLINE $A9BB*)
  410. BEGIN trapnr:= 0A9BBH; PTRAP; END GetIcon;
  411.  
  412. (*$P-,$S-,$T-*)
  413. PROCEDURE PlotIcon(VAR theRect: Rect; theIcon: Handle); (*INLINE $A94B*)
  414. BEGIN trapnr:= 0A94BH; PTRAP; END PlotIcon;
  415.  
  416. (*$P-,$S-,$T-*)
  417. PROCEDURE GetPattern(patID: INTEGER):  PatHandle;       (*INLINE $A9B8*)
  418. BEGIN trapnr:= 0A9B8H; PTRAP; END GetPattern;
  419.  
  420. BEGIN QDGlobals:=MacBase.RootRecord.patch3;
  421. END QuickDraw.
  422.